<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
    <!-- <ruDao></ruDao> -->
    <ru-dao></ru-dao>
    <component-a></component-a>
    <component-b></component-b>
  </div>
  <script src="../vue.js"></script>
  <script>
    /*
      组件注意事项: 
      1、data必须是一个函数。
      2、模板必须使用一个根元素进行包裹，有且只有一个。
      3、可以在模板字符串中定义页面的结构，使结构看起来更加清晰
      4、组件的命名方式：
          组件名字如果是驼峰写法，如果在页面中当成标签使用，必须改成中划线分隔的方式
          但是，在模板字符串中，是可以不用转成中划线写法的
    */
    // vue 实例化之后，接管了一个区域，这个区域就是最顶级的父元素 所以也叫根元素 也叫组件
    Vue.component('ruDao', {
      data: function () {
        return {
          msg: '儒道至圣'
        }
      },
      template: `
      <div>
        <span>{{msg}}</span>
      </div>`
    })
    var componentA = {
      data: function () {
        return {
          name: '方运'
        }
      },
      template: `
      <div>
        <p>{{ name }}</p>
      </div>
      `
    }

    var componentB = {
      data: function () {
        return {
          age: '正气道'
        }
      },
      // dom模板 页面
      template: `
      <div>
        <p>{{ age }}</p>
      </div>
      `
    }
    var mv = new Vue({
      el: "#app",
      data: {},
      methods: {},
      components: {
        'component-a': componentA,
        'component-b': componentB
      }
    })
  </script>
</body>

</html>